System and/or method for pedestrian navigation

ABSTRACT

Disclosed are methods, apparatuses and systems for tracking a location of a mobile device based, at least in part, on measurements over time. In response to measurements, particles in a motion model may be propagated in a first routing graph covering an area. Propagated particles may be indicative of a direction of movement along a second routing graph covering the same area or a larger area in some embodiments.

PRIORITY CLAIM

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 13/649,949 (Attorney Docket No. 111525), now U.S.Pat. No. 8,594,701, filed on Oct. 11, 2012, and titled “SYSTEM AND/ORMETHOD FOR PEDESTRIAN NAVIGATION,” which claims priority to U.S.Provisional Patent Application No. 61/545,910, filed on Oct. 11, 2011,and titled “METHOD AND/OR APPARATUS FOR BACKTRACKING POSITIONESTIMATION,” both of which are hereby incorporated by reference for allpurposes.

TECHNICAL FIELD

Disclosed are methods and techniques for obtaining a position fix for amobile device.

DESCRIPTION OF THE RELATED TECHNOLOGY

Mobile devices can typically obtain a position fix by measuring rangesto three or more terrestrial transmitters (e.g., wireless access points)which are positioned at known locations. Such ranges may be measured,for example, by obtaining a MAC ID address from signals received fromsuch access points and measuring one or more characteristics of signalsreceived from such access points such as, for example, signal strength,round trip delay, just to name a few examples. Such measurements may beviewed as “direct measurements” in that they give information regardinga current position (such as a range to a transmitter fixed at a knownlocation) when obtained.

Typically, measurements of ranges to only three transmitters aresufficient for obtaining a sufficiently accurate estimate of a locationof the mobile device. In addition to the use of direct measurements, amobile device may incorporate “indirect measurements” indicative ofrelative motion to assist in obtaining an estimate of a current positionestimate. Such indirect measurements may include, for example,measurements obtained from signals generated by sensors such as, forexample, accelerometers, pedometers, compasses or gyroscopes. Also, incertain environments and applications, movement of a mobile device maybe constrained to predetermined areas or paths. In an indoorenvironment, for example, movement of a mobile device may be constrainedto predetermined paths or routes defined according to walls, doorways,entrances, stairways, etc. As such, a current location of a mobiledevice may be presumed to be constrained by such predetermined areas orpaths. However, merely constraining a mobile station's location to apath may not, without additional information, indicate a location of themobile device with sufficient precision to useful in certain locationbased applications. Here, the precise location of the mobile device isstill uncertain as the location may be anywhere along, or at leastproximate to, any portion of a predetermined path.

BRIEF DESCRIPTION OF DRAWINGS

Non-limiting and non-exhaustive aspects are described with reference tothe following figures, wherein like reference numerals refer to likeparts throughout the various figures unless otherwise specified.

FIG. 1 is a system diagram illustrating certain features of a systemcontaining a mobile device, in accordance with an implementation.

FIG. 2 is a map of a portion of an indoor area including a connectivitygraph connecting grid points according to an implementation.

FIG. 3A is a map of a portion of an indoor area partitioned into cellsconnected by a routing graph according to an implementation.

FIG. 3B is a map of a portion of an indoor area illustrating aspects ofa motion model according to an implementation.

FIG. 4A is a flow diagram illustrating a process to track a location ofa mobile device according to an embodiment.

FIG. 4B is a flow diagram illustrating a process to track a location ofa mobile device according to an implementation.

FIG. 5 is a schematic block diagram illustrating an exemplary mobiledevice, in accordance with an implementation.

FIG. 6 is a schematic block diagram of an example computing platformaccording to an implementation.

FIG. 7 is a plot of an example of a distribution of transitionlikelihoods along edges according to an implementation.

SUMMARY

In one particular implementation, a method comprises: identifyingparticles to representing possible states of a mobile device, saidpossible states including at least possible locations of said mobiledevice in an area; determining a target anchor node of a plurality ofanchor nodes in a first routing graph connecting a plurality of cells ofthe area based, at least in part, on measurement signals at the mobiledevice; and propagating one or more of said particles subject to edgesof a second routing graph connecting nodes within at least one cell ofthe plurality of cells to represent possible movement of said mobiledevice based, at least in part, on the determined target anchor node.

In another implementation, a mobile device comprises: one or moreinertial sensors configured to generate measurement signals; and aprocessor configured to: identify particles representing possible statesof said mobile device, said possible states including at least possiblelocations of said mobile device in an area; determine a target anchornode of a plurality of anchor nodes in a first routing graph connectinga plurality of cells of the area based, at least in part, on saidmeasurement signals; and propagate one or more of said particles subjectto edges of a second routing graph connecting nodes within at least onecell of the plurality of cells to represent possible movement of saidmobile device based, at least in part, on the determined target anchornode.

In another implementation, a non-transitory storage medium comprisingmachine-readable instructions stored thereon which are executable by aspecial purpose computing apparatus to: identify particles representingpossible states of a mobile device, said possible states including atleast possible locations of said mobile device in an area; determine atarget anchor node of a plurality of anchor nodes in a first routinggraph connecting a plurality of cells of the area based, at least inpart, on measurement signals at the mobile device; and propagate one ormore of said particles subject to edges of a second routing graphconnecting nodes within at least one cell of the plurality of cells torepresent possible movement of said mobile device based, at least inpart, on the determined target anchor node.

In yet another implementation, an apparatus comprises: means foridentifying particles representing possible states of a mobile device,said possible states including at least possible locations of saidmobile device in an area; means for determining a target anchor node ofa plurality of anchor nodes in a first routing graph connecting aplurality of cells of the area based, at least in part, on measurementsignals at the mobile device; and means for propagating one or more ofsaid particles subject to edges of a second routing graph connectingnodes within at least one cell of the plurality of cells to representpossible movement of said mobile device based, at least in part, on thedetermined target anchor node.

In an implementation, a method comprises: determining a potentialdirection of movement of a mobile device based on a first routing graph;and determining a position of the mobile device using one or morepotential positions on a second routing graph, the one or more potentialpositions being based, at least in part, on the determined potentialdirection. In some embodiments, the second routing graph has a finerresolution than the first routing graph. In some embodiments, the secondrouting graph comprises a greater number of edges than the first routinggraph. In some embodiments, the potential positions are represented byparticles in a particle filter.

In an implementation, a method comprises: obtaining at least onemeasurement determined at one or more sensors associated with a mobiledevice; and determining a position of the mobile device based on apotential macro direction of movement of the mobile device and aplurality of potential micro directions of movement, wherein thepotential macro direction of movement of the mobile device is based, atleast in part, on the at least one measurement. In some embodiments, themacro direction is defined with respect to one of a plurality of areasadjacent to a previous position of the mobile device. In some suchembodiments, the previous position is located in an area where there isan opportunity for change of direction.

It should be understood, however, that the aforementionedimplementations are merely particular example implementations, and thatclaimed subject matter is not limited to these particular exampleimplementations.

DETAILED DESCRIPTION

In particular implementation, a mobile device may employ a motion modelsuch as a particle-filter to incorporate direct and indirectmeasurements to estimate a motion state of the mobile device over aconstrained routing graph. In example implementations, a particle mayrepresent a possible motion state including at least a location on arouting graph. Other attributes of a possible motion state may include,for example, velocity or acceleration along a routing graph.

In a particular implementation, a mobile station may employ aparticle-filter according to a constrained routing graph to incorporatedirect and indirect measurements subject to route constraints asfollows:

-   -   1) particles may be propagated along a routing graph according        to the particle state, and the indirect information about        relative position movement.    -   2) each particle is assigned a likelihood according to direct        measurements.    -   3) particles may then be resampled according to the likelihood        distribution.

Depending on a complexity of a constrained routing graph implemented ina motion model such as a particle filter, implementation of the motionmodel on a mobile computing device may entail use of significantprocessing resources (e.g., memory and CPU resources).

In a particular implementation, a motion model may apply direct orindirect measurements to propagate particles representing possiblemotion states including location along multiple routing graphs. Anavigable area may be partitioned in to “cells” (e.g., rooms or hallwaysconnecting rooms) and a coarse routing graph may define feasiblemovements or transitions between the cells. Indirect and directmeasurements may be incorporated to propagate particles representingpossible motion states of a tracked object along edges of the coarserouting graph to, for example, estimate or predict movements of thetracked object between or among cells. In addition, indirect and directmeasurements may be incorporated to propagate particles along a finerouting graph representing possible motion states local to a currentcell. By limiting propagation of particles over a fine routing graphover a smaller, local routing graph, instead of over a larger indoorarea, processing resources may be conserved. Further, motion of a usermodeled using the particle filter may be more realistic and/or moreaccurate. In some embodiments, such increased realism and/or accuracymay be achieved using fewer particles in the particle filter. Moreover,enhancements to a particle filter motion model described herein maysignificantly improve performance in that a given level of estimationaccuracy may be achieved with fewer particles (e.g., compared to arandom walk or memoryless directed random walk).

Certain embodiments of known particle filters tracking a mobile deviceover a routing graph connecting densely populated grid points may leadto local inferences of movement that are made independently of a contextof where a pedestrian is predisposed to travel. This may diminish amacro context of tracking pedestrian movements to destinations in anindoor area. In addition, large rooms with small exits may create“trapping areas” where a particle may be impeded from escaping despitemovement. However, in a particular implementation according toembodiments herein, a likely direction of pedestrian movement may beused to affect direction of movement of particles to avoid one or moreof the aspects discussed above. In this way, decisions regardingpedestrian movement may be made over longer, more natural stretches.Similarly, a more natural model of pedestrian mobility may be enforcedor applied over the routing graph connecting densely populated gridpoints.

In certain implementations, as shown in FIG. 1, a mobile device 100 mayreceive or acquire SPS signals 159 from SPS satellites 160. In someembodiments, SPS satellites 160 may be from one global navigationsatellite system (GNSS), such as the GPS or Galileo satellite systems.In other embodiments, the SPS Satellites may be from multiple GNSS suchas, but not limited to, GPS, Galileo, Glonass, or Beidou (Compass)satellite systems. In other embodiments, SPS satellites may be from anyone several regional navigation satellite systems (RNSS') such as, forexample, WAAS, EGNOS, QZSS, just to name a few examples.

In addition, the mobile device 100 may transmit radio signals to, andreceive radio signals from, a wireless communication network. In oneexample, mobile device may communicate with a cellular communicationnetwork by transmitting wireless signals to, or receiving wirelesssignals from, a base station transceiver 110 over a wirelesscommunication link 123. Similarly, mobile device 100 may transmitwireless signals to, or receiving wireless signals from a localtransceiver 115 over a wireless communication link 125.

In a particular implementation, local transceiver 115 may be configuredto communicate with mobile device 100 at a shorter range over wirelesscommunication link 125 than at a range enabled by base stationtransceiver 110 over wireless communication link 123. For example, localtransceiver 115 may be positioned in an indoor environment. Localtransceiver 115 may provide access to a wireless local area network(WLAN, e.g., IEEE Std. 802.11 network) or wireless personal area network(WPAN, e.g., Bluetooth network). In another example implementation,local transceiver 115 may comprise a femto cell transceiver capable offacilitating communication on wireless communication link 125 accordingto a cellular communication protocol. Of course it should be understoodthat these are merely examples of networks that may communicate with amobile device over a wireless link, and claimed subject matter is notlimited in this respect.

In a particular implementation, base station transceiver 110 and localtransceiver 115 may communicate with servers 140, 150 and 155 over anetwork 130 through links 145. Here, network 130 may comprise anycombination of wired or wireless links. In a particular implementation,network 130 may comprise Internet Protocol (IP) infrastructure capableof facilitating communication between mobile device 100 and servers 140,150 or 155 through local transceiver 115. In another implementation,network 130 may comprise cellular communication network infrastructuresuch as, for example, a base station controller or master switchingcenter to facilitate mobile cellular communication with mobile device100.

In particular implementations, and as discussed below, mobile device 100may have circuitry and processing resources capable of computing aposition fix or estimated location of mobile device 100. For example,mobile device 100 may compute a position fix based, at least in part, onpseudorange measurements to four or more SPS satellites 160. Here,mobile device 100 may compute such pseudorange measurements based, atleast in part, on of pseudonoise code phase detections in SPS signals159 acquired from four or more SPS satellites 160. In particularimplementations, mobile device 100 may receive from server 140, 150 or155 positioning assistance data to aid in the acquisition of SPS signals159 transmitted by SPS satellites 160 including, for example, almanac,ephemeris data, Doppler search windows, just to name a few examples.

In other implementations, mobile device 100 may obtain a position fix byprocessing signals received from terrestrial transmitters fixed at knownlocations (e.g., such as base station transceiver 110) using any one ofseveral techniques such as, for example, advanced forward trilateration(AFLT) and/or observed time difference of arrival (OTDOA). In theseparticular techniques, a range from mobile device 100 may be measured tothree or more of such terrestrial transmitters fixed at known locationsbased, at least in part, on pilot signals transmitted by thetransmitters fixed at known locations and received at mobile device 100.Here, servers 140, 150 or 155 may be capable of providing positioningassistance data to mobile device 100 including, for example, locationsand identities of terrestrial transmitters to facilitate positioningtechniques such as AFLT and OTDOA. For example, servers 140, 150 or 155may include a base station almanac (BSA) which indicates locations andidentities of cellular base stations in a particular region or regions.

In particular environments such as indoor environments or urban canyons,mobile device 100 may not be capable of acquiring signals 159 from asufficient number of SPS satellites 160 or perform AFLT or OTDOA tocompute a position fix. Alternatively, mobile device 100 may be capableof computing a position fix based, at least in part, on signals acquiredfrom local transmitters (e.g., WLAN access points positioned at knownlocations). For example, mobile devices may obtain a position fix bymeasuring ranges to three or more indoor terrestrial wireless accesspoints which are positioned at known locations. Such ranges may bemeasured, for example, by obtaining a MAC ID address from signalsreceived from such access points and obtaining range measurements to theaccess points by measuring one or more characteristics of signalsreceived from such access points such as, for example, received signalstrength (RSSI) or round trip time (RTT). In alternativeimplementations, mobile device 100 may obtain an indoor position fix byapplying characteristics of acquired signals to a radio “heatmap”indicating expected RSSI and/or RTT signatures at particular locationsin an indoor area.

In particular implementations, mobile device 100 may receive positioningassistance data for indoor positioning operations from servers 140, 150or 155. For example, such positioning assistance data may includelocations and identities of transmitters positioned at known locationsto enable measuring ranges to these transmitters based, at least inpart, on a measured RSSI and/or RTT, for example. Other positioningassistance data to aid indoor positioning operations may include radioheatmaps, locations and identities of transmitters, routeability graphs,just to name a few examples. Other assistance data received by themobile device may include, for example, local maps of indoor areas fordisplay or to aid in navigation. Such a map may be provided to mobiledevice 100 as mobile device 100 enters a particular indoor area. Such amap may show indoor features such as doors, hallways, entry ways, walls,etc., points of interest such as bathrooms, pay phones, room names,stores, etc. By obtaining and displaying such a map, a mobile device mayoverlay a current location of the mobile device (and user) over thedisplayed map to provide the user with additional context.

In one implementation, a routeability graph and/or digital map mayassist mobile device 100 in defining feasible areas for navigationwithin an indoor area and subject to physical obstructions (e.g., walls)and passage ways (e.g., doorways in walls). Here, by defining feasibleareas for navigation, mobile device 100 may apply constraints to aid inthe application of filtering measurements for estimating locationsand/or motion trajectories according to a motion model (e.g., accordingto a particle filter and/or Kalman filter). In addition to measurementsobtained from the acquisition of signals from local transmitters,according to a particular embodiment, mobile device 100 may furtherapply a motion model to measurements or inferences obtained frominertial sensors (e.g., accelerometers, gyroscopes, magnetometers, etc.)and/or environment sensors (e.g., temperature sensors, microphones,barometric pressure sensors, ambient light sensors, camera imager, etc.)in estimating a location or motion state of mobile device 100.

According to an embodiment, mobile device 100 may access indoornavigation assistance data through servers 140, 150 or 155 by, forexample, requesting the indoor navigation assistance data throughselection of a universal resource locator (URL). In particularimplementations, servers 140, 150 or 155 may be capable of providingindoor navigation assistance data to cover many different indoor areasincluding, for example, floors of buildings, wings of hospitals,terminals at an airport, portions of a university campus, areas of alarge shopping mall, just to name a few examples. Also, memory resourcesat mobile device 100 and data transmission resources may make receipt ofindoor navigation assistance data for all areas served by servers 140,150 or 155 impractical or infeasible, a request for indoor navigationassistance data from mobile device 100 may indicate a rough or courseestimate of a location of mobile device 100. Mobile device 100 may thenbe provided indoor navigation assistance data covering areas includingand/or proximate to the rough or course estimate of the location ofmobile device 100.

In one particular implementation, a request for indoor navigationassistance data from mobile device 100 may specify a location contextidentifier (LCI). Such an LCI may be associated with a locally definedarea such as, for example, a particular floor of a building or otherindoor area which is not mapped according to a global coordinate system.In one example server architecture, upon entry of an area, mobile device100 may request a first server, such as server 140, to provide one ormore LCIs covering the area or adjacent areas. Here, the request fromthe mobile device 100 may include a rough location of mobile device 100such that the requested server may associate the rough location withareas covered by known LCIs, and then transmit those LCIs to mobiledevice 100. Mobile device 100 may then use the received LCIs insubsequent messages with a different server, such as server 150, forobtaining navigation assistance relevant to an area identifiable by oneor more of the LCIs as discussed above (e.g., digital maps, locationsand identifies of beacon transmitters, radio heatmaps or routeabilitygraphs).

FIG. 2 is a map of a portion 200 of an indoor area including aconnectivity graph connecting grid points according to animplementation. Segments of the connectivity graph illustrating pathsbetween defined portions of the indoor area may form a routing graph.The map shown in FIG. 2 may be represented or maintained in a digitalformat as an electronic or “digital” map that is stored in a memorydevice of a mobile device such as mobile device 100. The connectivitygraph shown comprises edges connecting grid points to represent possibletransitions between grid points. In the particular implementation shownin FIG. 2, grid points are placed in a regular square pattern at a setspacing (e.g., 2.0 feet by 2.0 feet). Accordingly, a grid point may beconnected to as many as eight neighboring grid points by edges in therouting graph. Probabilities of transitioning from a grid point to aneighboring grid point along a connecting edge may be initiallyestablished according to a “probability heatmap.”

As pointed out above, while application of a particle filter to arouting graph connecting more densely populated grid points over a givenarea (e.g., as shown in FIG. 2) may allow for an accurate or preciseestimate or prediction of a motion state, such an application of aparticle filter over a dense population of grid points iscomputationally intensive. As explained above, a particle may representa possible state of a mobile device (e.g., location, velocity, etc.). Ina particular implementation, a motion model may propagate particles overa first routing graph connecting a dense population of grid points in anindoor area. A direction of movement along a second coarse routing graphconnecting a more sparse population of nodes over the indoor area may bedetermined or selected, for example based on a determined or selectedtarget area or location. As explained below with particular examples, aparticular motion model may propagate a particle along the first routinggraph to model likely movement of a mobile device in a short-term. Thedetermined or selected direction of movement along the second routinggraph may be used model likely movement of the mobile device over alonger-term, and may be applied to affect particles which are propagatedon the first routing graph. A motion model may assign high-level motiondestination cells based on the coarse routing graph while movementswithin each cell may be modeled on the denser routing graph. Thelikelihoods of such movements with the cell may be affected by or basedon the high-level motion destination cell(s). Such a motion model maybenefit both from the finer resolution of movements modeled on the densegraph while preserving the purposeful property of normal pedestrianmotion. In other words, the coarse routing graph may model apedestrian's purposeful movements toward a destination such as along ahallway travelling between rooms in an indoor environment while thedenser routing graph may model finer or smaller movements that maydeviate somewhat from a path toward the destination. Thus, in someembodiments, a particle may not be propagated along edges of the coarserouting graph, but rather the coarse routing graph may influencepropagation of the particle along the dense routing graph.

FIG. 3A is a map of a portion 300 of an indoor area including a firstrouting graph comprising edges connecting a dense population of gridpoints (e.g., as shown in FIG. 2) and a second routing graph connectingzones within the indoor area. Here, the indoor area shown in FIG. 3A ispartitioned into “cells” defining areas within which a mobile device oruser co-located with a mobile device may travel in many differentdirections as indicated by an estimated or predicted motion state. Also,a cell may comprise an area covered by a room or portion of a hallwayconnecting rooms, etc. Alternatively, a cell may define any portion of anavigable area that may be a destination for a pedestrian which isdistinct from other cells. While cells depicted in FIG. 3A are shown bybroken lines as non-overlapping, cells may be overlapping in otherimplementations. Also, the particular implementation of FIG. 3A showsthat cells are touching and that there are essentially no gaps in theindoor that are not included in a cell. In other embodiments, such gapsin coverage between cells may exist. In any case, these are merelyexamples of how a cell may be characterized according to a particularimplementation and claimed subject matter is not limited in thisrespect. According to an embodiment, cells in an indoor area may bedefined by visual inspection. In other embodiments, cells may beautomatically defined by a computing apparatus from features extractedfrom a CAD map or other type of electronic map of the indoor area, ormay be inferred or determined from a connectivity or routing graph.

As shown, the second routing graph connects nodes assigned to cells as“anchor nodes” to reflect movement or traveling between cells. Here,anchor nodes may reflect any number of aspects of pedestrian movementalong the coarse routing graph. For example, an anchor node may beplaced at the center of a cell to define a single-point destination of apedestrian toward the cell. An anchor node may also define asingle-point junction between edges in the coarse routing graph toindicate a possible change of direction of a pedestrian from a directionalong one edge to another. It should be understood, however, that theseare merely examples of how an anchor node on a coarse routing graph maybe applied in a particular implementation, and claimed subject matter isnot limited in this respect.

In one implementation, the second routing graph may comprise a “reduced”routing graph based on or including a subset of nodes and edges from thefirst routing graph (e.g., connecting dense grid points). Here, gridpoints may be represented as entries in a data structure stored in amemory including locations of the grid points and an indication ofneighboring grid points that are connected by an edge in a dense routinggraph. In implementing a reduced routing graph, reduced nodes may beidentified along with a list of neighboring nodes. A cell may bedescribed, at least in part, by associating locations of grid pointsconnecting edges in the first routing graph with the cell in tableindexed by a reduced node in the reduced routing graph that absorbs thegrid points. In another implementation, the second routing graph mayrepresent possible movement for a significant change of direction orlocation of a mobile device travelling in the indoor area. While edgesof the second routing graph may be formed from edges and nodes in afirst routing graph connecting dense grid points, in particularimplementations the second routing graph may be formed from edges thatdo not overlap edges of the first routing graph. In one exampleimplementation, the second routing graph may efficiently be applied toestimating or predicting long or medium term movement between cells(e.g., rooms) while the first routing graph may be applied to estimatingor predicting a motion state pertaining to smaller movements within acell with a high degree of precision. In a particular implementation, amotion model may apply a first probability heatmap expressing transitionprobabilities between nodes in the first routing graph to propagateparticles representing possible motion states along edges of the firstrouting graph in response to direct and indirect measurements toestimate or predict a motion state within a cell. In a particularimplementation, a motion model may also infer a likely direction ofmovement toward nodes in the second routing graph (e.g., an anchor nodeof a selected “target cell” as discussed below) to express likelihoodsof transition based, at least in part, on particles propagated along thefirst routing graph. In one example implementation, particlesrepresenting possible motion states propagated along edges of the firstrouting graph may indicate a direction of movement along the secondrouting graph including, for example, turn decisions to be made at anode in the second routing graph (e.g., at a node where there is anopportunity for turning to a room from a hallway or at an intersectionof hallways). Such direction of movement along the second routing graphmay be used to affect further movement or likelihood of movement ofparticles along the first routing graph.

Portion 300 of a map of an indoor area shows a subdivision into cellsincluding cells 304, 306, 308, 310, 312, 316, 318, 322 and 324. Arouting graph (e.g. second routing graph as discussed above) connectsanchor nodes located in corresponding cells. As illustrated, thisrouting graph connects cells to specify feasible movement betweenneighboring or adjacent cells. For example, a mobile device located incell 322 may travel directly into adjacent or neighboring cells 326,320, 318 or 324 along a routing graph connecting anchor nodes in thesecells. Cells having only a single neighboring or adjacent cell, andconnected to remaining cells through the single neighboring or adjacentcell, may be identified as “leaf” cells. In a particular implementation,a motion state (e.g., including a direction of movement and speed) of anobject being tracked may be transitioned between anchor nodes ofneighboring or adjacent cells along the routing graph connecting theanchor nodes. In an example implementation, a motion model for atrajectory estimation system such as a particle filter may applyparticles propagated to represent motion states along edges of a denserouting graph, assisted by inferences of movement along edges of thecoarse routing graph, for determining a speed and a direction ofmovement. A particular filter may apply these propagated particles fordetermining a direction and estimating a speed based, at least in part,on a probability heat map setting forth likelihoods of transitioningbetween nodes on the dense routing graph.

FIG. 3B is a map of an indoor area illustrating aspects of a motionmodel according to an implementation. For example, FIG. 3B mayillustrate a close up or zoomed in view of a section of the portion 300or another portion or area. Here, particles 361 and 362 are located in acurrent cell 341. Anchor node 363 is an anchor node of current cell 341and anchor node 352 is an anchor node of cell 342. For any particularparticle, a target cell may be selected from among cells 342 and 344,among others, that are neighboring current cell 341. In the currentlyillustrated example, cell 342 is selected as the target cell forparticles 361 and 362. As discussed below, a target cell may be selectedbased, at least in part, on a most likely direction of movement from ananchor cell associated with a current cell. In one implementation, atarget cell may be selected for a single particle indicative of locationin the current cell to indicate possible or likely motion.Alternatively, target cells may be selected for multiple particles orall particles within a current cell.

In some implementations, a target cell may be selected based on a likelydirection of movement, for example according to a motion model and/ormeasurements collected at a mobile device. In such embodiments, themotion model may include past particle locations or other forms ofparticle filter history. A potential cell toward which the mobile deviceis likely headed may therefore be selected as the target cell, forexample based on measurements at the mobile device and/or past orcurrent movement. In some embodiments, a target cell may be selectedbased on crowdsourced data. For example, when a user is located at ananchor node or location where the user may choose one of several paths,a likely path and target cell may be selected based on a percentage oftimes that other users select each path. In some embodiments, a targetcell may be based on a determined or predicted utility of that cell tothe user, and/or based on points of interest located within the celland/or within other potential cells or along paths that may travelthrough the cell or other potential cells. In some embodiments, a targetcell is randomly chosen from all adjacent cells which a user may enterwhenever a user reaches a location where a decision between suchadjacent cells is possible. In other embodiments, another technique orfactor may be used when choosing or selecting a target cell. In otherimplementations, a target cell may be selected based, at least in part,on particular attributes of a user of a mobile device if the attributesindicate a propensity for the user to enter one cell versus anothercell. For example, in a floor of an office building a user may have isdesk in and, primarily work and reside in a particular office (a firstcell) along a hallway. As such, if the use is tracked along a routinggraph in the hallway, the target cell may be more likely to be selectedas the user's office rather than a storage closet (second cell) that isalso connected to the hallway. This may be implemented by weighting apath to the office more heavily in a maximum likelihood predictor of theuser's path. It should be understood, however, that these are merelyexamples of how a target cell may be selected and claimed subject matteris not limited in this respect.

Dashed lines are illustrated in FIG. 3B as extending from particles 361and 362 toward anchor node 352 of cell 342, which cell 342 has beenselected as the target cell for particles 361 and 362 in this example.In some embodiments, a probability distribution describing potentialmovement of a particle may be defined such that the particle is morelikely to travel roughly or substantially toward the anchor point of thetarget cell, for example along a path nearest to the illustrated dashedlines. For example, an amplitude or magnitude (e.g., represented asrelative length in FIG. 3B) of arrows 371 illustrated in FIG. 3B asextending from anchor node 363 and arrows 372 illustrated in FIG. 3B asextending from anchor node 362 node may represent likelihoods ofdirection of movement in a subsequent processing cycle. For example, thelarger arrow of arrows 371 extending directly downward from particle 361may indicate that particle 361 is more likely to move directly downwardtoward target anchor node 352. Similarly, the larger arrow of arrows 372extending “southwestward” may indicate that particle 362 is more likelyto move diagonally toward target anchor node 352. In a particularimplementation, a distribution of magnitudes of arrows 371 and 372(representing likelihoods of direction of movement), may be as shown inthe plot of FIG. 7 showing a highest weighting in a direction toward ananchor node of a target cell with a decreasing weight moving off axis ofthe direction toward the target cell. As such, although it is possiblefor particles 361 or 362 to take a random trajectory along any edge towhich it is connected, movement toward cell 342 is the most likelymovement, consistent with the fact that cell 342 is the selected targetcell for both particle 361 and particle 362.

In some embodiments, the likelihoods represented by the arrows 371 and372 may be determined by applying a distribution of transitionlikelihoods in a direction of the target cell. For example, FIG. 7illustrates a plot of an example of a distribution of transitionlikelihoods along edges according to an implementation. In a particularimplementation, a distribution of magnitudes of arrows 371 and 372(representing likelihoods of direction of movement), may be as shown inthe plot of FIG. 7 showing a highest weighting in a direction toward ananchor node of a target cell with a decreasing weight moving off axis ofthe direction toward the target cell. In FIG. 7, segment 1300 pointingstraight up may be used to represent a likelihood of transitioning in adirection toward the target node, for example along the dotted line. Ifsegment 1300 is aligned with the dotted line or aligned with the edge ofthe fine routing graph that is nearest the dotted line, segment 1300 mayrepresent a likelihood of transitioning along that edge while the otherarrows represent the likelihoods of transitioning along the otheradjacent edges. Similarly, such a distribution may be projected onto theedges surrounding a particular node at which a particle is located basedon the direction of the target cell. In some embodiments, each edgeadjacent to a node at which a particle is located may be assigned alikelihood of transition within a certain range of probabilities,wherein the range for each edge is based on a relative disposition ofthe edge relative to the direction of the target cell. In suchembodiments, likelihoods of transition for each edge may be randomlyselected from the ranges. In some embodiments, the likelihood oftransitioning along each edge adjacent to a node at which a particle islocated may be randomly assigned without reference to or influence byother factors. In other embodiments, another technique or factor may beused when assigning likelihoods of transition.

As can be observed from FIG. 3B, if cell 342 is a target cell, dashedlines between anchor node 352 of target cell 342 and particle 361 mayindicate a direction of likely movement from particle 361 toward targetcell 342. Accordingly, the magnitude of arrows 371 extending fromparticle 361 may be weighted more heavily toward anchor node 352according to the dashed line, for example according to one or moremethods described above. Similarly, dashed lines between anchor node 352of target cell 342 and particle 362 may indicate a direction of likelymovement from particle 362 toward target cell 342. Here, the magnitudeof arrows 372 extending from particle 362 may be weighted more heavilyin a direction toward anchor node 352, for example according to one ormore methods described above. The method or technique used for assigningtransition likelihoods may be the same for particles 361 and 362, or maydiffer.

If particle 361 actually enters cell 342, a new target cell (e.g., acell below cell 342, not shown) may be selected for particle 361 whilecell 342 becomes a new current cell. Alternatively, previous currentcell, cell 341, may also become the new target cell. In either case, ina particular implementation, as particle 361 transitions from cell 341to cell 342, a “wandering” timer may be set. Here, if cell 341 is thenselected as the target cell of particle 361, particle 361 may beprevented from returning to cell 341 until the wandering timer expires,thereby enforcing that particle 361 dwells for a minimum duration incell 342 before returning to cell 341. Application of the wanderingtimer may be particularly useful if a particle enters a leaf cell. Afterexpiration of a wandering timer, a likely direction of movement of aparticle toward a new target cell may be selected as discussed above.

In another particular example, if particle 362 moves directly downwardover two cycles, it may enter cell 344 and not cell 342 determined to bethe target cell. Here, to redirect particle 362 toward target cell 342,cell 341 may be selected as a new target cell. By setting the wanderingtimer to zero, particle 362 may be made or influenced to returnimmediately. As particle 362 transitions to cell 341, a new directionmay be selected for particle 362 (e.g., a most likely direction ofmovement as discussed above) toward a new target. This new target cellmay be different from the direction that (incorrectly) directed particle362 to cell 344 in some embodiments.

FIG. 4A is a flow diagram illustrating a process 380, which may forexample be used to track a motion state of a mobile device according toan embodiment. Block 382 may identify particles representing possiblestates of a mobile device. The possible states may include at leastpossible locations of the mobile device in an area. Block 384 maydetermine a target anchor node of a plurality of anchor nodes in a firstrouting graph connecting a plurality of cells of the area based, atleast in part, on measurement signals. Block 386 may propagate one ormore of the particles subject to edges of a second routing graphconnecting nodes within at least one cell of the plurality of cells torepresent possible movement of the mobile device based, at least inpart, on the determined target anchor node.

FIG. 4B is a flow diagram illustrating a process 400 to track a motionstate of a mobile device between or among cells according to aparticular implementation. For example, process 400 may be directed todetermining a target cell on processing intervals. As indicated above, amotion state of a mobile device may specify or indicate a location ofthe mobile device in a particular current cell in a portion of an indoorarea (e.g., as shown in FIG. 3). Based, at least in part, on indirect ordirect measurements, an estimated or predicted motion state may indicatethat the mobile device is moving toward a “target” cell. Similarly, amotion model may transition or propagate a particle representing a stateof a mobile device indicating movement of the mobile device toward atarget cell. Here, such a target cell may comprise a cell that isneighboring or adjacent to the current cell. In a particularimplementation, a motion state indicating a location, heading, speedand/or acceleration may be indicative of movement from a current celltoward or imminently into a target cell. The target cell may be randomlyselected by a motion model according to an expected likelihood ofmovement to each neighboring cell, and may be recorded as part of alatent motion state determining a possible medium-term movement pattern.For example, an adjacent cell may be selected as the target cell if thelikelihood of transitioning to the adjacent cell is higher than thelikelihood of transitioning to any other adjacent cell.

At block 402, direct and/or indirect measurements indicative of a motionstate of a mobile device may be collected from any one of severalsources as discussed above and time referenced. In some embodiments,these measurements may be considered in combination with prior particlemovement or other form of particle filter history at block 404 todetermine, select, or choose a target cell and/or a potential directionof movement toward the target cell.

As pointed out above, an estimated or likely motion state of a mobiledevice may be determined according to the motion model to specify, forexample, a location of a mobile device on an edge of the routing graphand a velocity of the mobile device along the edge. Here, such anestimated or likely motion state of a mobile device may be determinedbased, at least in part, on particles propagated according to the motionmodel. In a particular implementation, the estimated velocity along anedge of a routing graph may indicate movement toward a neighboring oradjacent cell as a target cell (e.g., as illustrated at block 404). Forexample, particles propagated along edges of a dense routing graph maybe indicative of a direction and/or speed of movement along edges of acoarse routing graph connecting adjacent cells. As pointed out above inFIG. 3B, movement along an edge of a coarse routing graph may indicatemovement toward an adjacent cell to be selected as a target cell. Forexample, in a particular implementation, a maximum likelihood estimatormay select a particular adjacent cell (e.g., from among multipleadjacent cells) as a target cell based, at least in part, on anestimated direction of movement along the coarse routing graph. Othertechniques for selecting or determining cell, for example based on oneor more collected measurements and/or as discussed above, may be used tochoose the direction of movement at block 404. In some embodiments,block 384 illustrated in FIG. 4A may comprise block 402 and/or block404.

At block 406, one or more particles may be propagated, for example basedon the direction chosen at block 404. As discussed above, the likelihoodof a particle being propagated in any given direction may be determinedbased on a direction toward a target anchor node, for example such thattransgression towards the cell in which the target anchor node islocated is more likely. As further discussed above, such likelihoods maybe chosen or assigned in any number of ways. For example, a probabilitydistribution may be applied to edges of a fine routing graph based onthe direction chosen in block 404, or likelihoods may be randomly chosenfrom potential ranges based on the direction chosen at block 404. Othertechniques for determining the likelihoods may be used in someembodiments.

In some embodiments, a motion model (such as one applied in a particlefilter) may incorporate measurements collected at block 402 to affectpossible motion states along edges of a routing graph connecting anchornodes in respective cells. In this context, particles may be indicatedas having a “location” representing a possible location of a mobiledevice that may move on iterations to propagate the particles inresponse to measurements. As such, a particle located in one cell may“move” to an adjacent cell on a propagation interval. In particularimplementations, a motion model such as one applied in a particlefilter, may predict the movements of particles representing possiblestates of the mobile device. A particle may represent these possiblestates of the mobile device as a motion state vector including alocation of the mobile device, direction of movement and/or speed ofmovement. On propagation iterations, a “location” of a particle (e.g.,possible location of a mobile device indicated in a motion state vector)may be moved along edges of a dense routing graph to representshort-term changes in location and movement. These short-term changes inlocation and movement may be determined by taking into consideration themedium term movements between cells based on a coarse routing graph, forexample as described above. In some embodiments, block 386 illustratedin FIG. 4A may comprise block 406 and/or any subsequent block in FIG.4B.

In a particular implementation, a motion model may apply a “wanderingtimer” to model a duration of time that a mobile device or particlerepresenting a state of the mobile device wanders within a “currentcell” before progressing to a target cell. A target cell may comprise acell that is neighboring or adjacent to a cell where a particle iscurrently located (“current cell”). As indicated above, a target cellmay be determined or selected based, at least in part, on an indicationof a likelihood of a particle transitioning from the current cell to theadjacent target cell. Based, at least in part, on an estimated velocityof the mobile device along an edge in a coarse routing graph, block 406may infer or predict movement of the mobile device toward or away fromthe target cell. On propagation iterations, a motion model may select alikely direction for movement of each particle on the dense routinggraph toward an anchor node of that particle's target cell. This likelydirection may be selected based, at least in part, on a prior likelihoodof changes in direction of a particle on the dense routing graph, aprobability heatmap representing likelihoods of movement toward densegrid points, and a prior direction of movement of that particle. Thus aparticle representing a possible state of the mobile device mayarbitrarily change direction along the dense routing graph. For example,a location of a particle representing a possible state of the mobiledevice may, in fact, enter a cell that is not its selected target cell.Referring to the example implementation of FIG. 3A, a particle locatedin cell 322 may represent a possible motion state indicating anestimated velocity along a coarse routing graph suggesting that themobile device is moving toward cell 318. However, the particle mayinstead change direction and actually enter cell 324, 320 or 326.

It is determined at diamond 408 whether the particle enters the targetcell selected at block 404 or a different neighboring cell. If,responsive to a random nature of a motion model, a particle representinga possible state of a mobile device actually enters a neighboring cellthat is not a selected target cell, block 432 may assign a new targetcell as the previous cell. A wandering-timer for that particularparticle may also be set to zero at block 434 so that the particle mayreturn to the previous cell without delay.

If a particle is propagated to a current cell that is a selected targetcell, it may be determined at diamond 414 whether the wandering time hasexpired, and if so, a neighboring cell may be selected as a new targetcell at block 420, based at least in part on a predefined likelihood ofmovement to that neighboring cell from the current cell. Otherwise, ifthe wandering timer has not expired, the wandering-timer may be reducedat block 418 by time spent in the target cell and process 400 terminatesat 424. In some embodiments, the process 400 continues to diamond 414from diamond 408 if the particle has been propagated to another nodewithin the same cell. If a new target cell determined at block 420 is aleaf cell (e.g., has only one adjacent or neighboring cell) asdetermined at diamond 422, the wandering-time is set to a random valueat block 428 and process 400 terminates at 430. It should be understood,however, that this is merely an example of how a wander timer may be setif a leaf cell is detected as a target cell, and claimed subject matteris not limited in this respect.

It will be appreciated that many advantages and/or efficiencies may beachieved pursuant to embodiments herein. For example, the coarse routinggraph may be used to determine longer-term destinations for particles ina particle filter, and the fine routing graph may be used to propagateparticles in the desired general direction, while allowing for thepossibility of deviating from any one exact path. Certain mechanismsdescribed herein, for example the wandering timer in some embodiments orother described elements, may be used to implement such generallygravitated, but not precisely determined path selection behavior.

As pointed out above, embodiments described herein may enable a particlefilter to perform more realistically and/or more accurately. In someembodiments, such increased realism and/or accuracy may be achievedusing fewer particles in the particle filter. Moreover, enhancements toa particle filter motion model described herein may significantlyimprove performance in that a given level of estimation accuracy may beachieved with fewer particles (e.g., compared to a random walk ormemoryless directed random walk).

FIG. 5 is a schematic diagram of a mobile device according to anembodiment. Mobile device 100 (FIG. 1) may comprise one or more featuresof mobile device 1100 shown in FIG. 5. In certain embodiments, mobiledevice 1100 may also comprise a wireless transceiver 1121 which iscapable of transmitting and receiving wireless signals 1123 via anantenna 1122 over a wireless communication network. Wireless transceiver1121 may be connected to bus 1101 by a wireless transceiver businterface 1120. Wireless transceiver bus interface 1120 may, in someembodiments be at least partially integrated with wireless transceiver1121. Some embodiments may include multiple wireless transceivers 1121and wireless antennas 1122 to enable transmitting and/or receivingsignals according to a corresponding multiple wireless communicationstandards such as, for example, WiFi, CDMA, WCDMA, LTE and Bluetooth,just to name a few examples.

Mobile device 1100 may also comprise SPS receiver 1155 capable ofreceiving and acquiring SPS signals 1159 via SPS antenna 1158. SPSreceiver 1155 may also process, in whole or in part, acquired SPSsignals 1159 for estimating a location of mobile device 1000. In someembodiments, general-purpose processor(s) 1111, memory 1140, DSP(s) 1112and/or specialized processors (not shown) may also be utilized toprocess acquired SPS signals, in whole or in part, and/or calculate anestimated location of mobile device 1100, in conjunction with SPSreceiver 1155. Storage of SPS or other signals for use in performingpositioning operations may be performed in memory 1140 or registers (notshown).

Also shown in FIG. 5, mobile device 1100 may comprise digital signalprocessor(s) (DSP(s)) 1112 connected to the bus 1101 by a bus interface1110, general-purpose processor(s) 1111 connected to the bus 1101 by abus interface 1110 and memory 1140. Bus interface 1110 may be integratedwith the DSP(s) 1112, general-purpose processor(s) 1111 and memory 1140.In various embodiments, functions or actions described herein, such asfunctions or actions described with reference to FIGS. 4A and 4B, may beperformed in response to execution of one or more machine-readableinstructions stored in memory 1140 (which may include any non-transitorystorage medium, such as RAM, ROM, FLASH, or magnetic disk drive, just toname a few examples). The one or more instructions may be executable bygeneral-purpose processor(s) 1111, specialized processors, or DSP(s)1112 to perform functions or actions described herein. Memory 1140 maycomprise a non-transitory processor-readable memory and/or acomputer-readable memory that stores software code (programming code,instructions, etc.) that are executable by processor(s) 1111 and/orDSP(s) 1112 to perform functions described herein. In a particularimplementation, general-purpose processor(s) 1111 and/or DSP(s) 1112 mayprovide means for defining particles to represent possible states of amobile device, said possible states including at least possiblelocations of said mobile device in an area; means for propagating atleast some of said particles subject to edges of a first routing graphconnecting nodes within a cell of a plurality of cells of the area inresponse to measurement signals according to said motion model torepresent movement of said mobile device within said cell; and means fordetermining a direction of movement along a second routing graphconnecting anchor nodes corresponding to and located in said cellsbased, at least in part, on said propagated particles. Similarly,general-purpose processor(s) 1111 and/or DSP(s) 1112 may executemachine-readable instructions stored on memory 1140 to perform blocks382, 384 and/or 386 of FIG. 4A, or to perform any action (but notnecessarily all actions) in process 400 illustrated in FIG. 4B.

Also shown in FIG. 5, a user interface 1135 may comprise any one ofseveral devices such as, for example, a speaker, microphone, displaydevice, vibration device, keyboard, touch screen, just to name a fewexamples. In a particular implementation, user interface 1135 may enablea user to interact with one or more applications hosted on mobile device1100. For example, devices of user interface 1135 may store analog ordigital signals on memory 1140 to be further processed by DSP(s) 1112 orgeneral purpose processor 1111 in response to action from a user.Similarly, applications hosted on mobile device 1100 may store analog ordigital signals on memory 1140 to present an output signal to a user.

In another implementation, mobile device 1100 may optionally include adedicated audio input/output (I/O) device 1170 comprising, for example,a dedicated speaker, microphone, digital to analog circuitry, analog todigital circuitry, amplifiers and/or gain control. It should beunderstood, however, that this is merely an example of how an audio I/Omay be implemented in a mobile device, and that claimed subject matteris not limited in this respect. In another implementation, mobile device1100 may comprise touch sensors 1162 responsive to touching or pressureon a keyboard or touch screen device.

Mobile device 1100 may also comprise a dedicated camera device 1164 forcapturing still or moving imagery. Camera device 1164 may comprise, forexample an imaging sensor (e.g., charge coupled device or CMOS imager),lens, analog to digital circuitry, frame buffers, just to name a fewexamples. In one implementation, additional processing, conditioning,encoding or compression of signals representing captured images may beperformed at general purpose/application processor 1111 or DSP(s) 1112.Alternatively, a dedicated video processor 1168 may performconditioning, encoding, compression or manipulation of signalsrepresenting captured images. Additionally, video processor 1168 maydecode/decompress stored image data for presentation on a display device(not shown) on mobile device 1100.

Mobile device 1100 may also comprise sensors 1160 coupled to bus 1101which may include, for example, inertial sensors and environmentsensors. Inertial sensors of sensors 1160 may comprise, for exampleaccelerometers (e.g., collectively responding to acceleration of mobiledevice 1100 in three dimensions), one or more gyroscopes or one or moremagnetometers (e.g., to support one or more compass applications).Environment sensors of mobile device 1100 may comprise, for example,temperature sensors, barometric pressure sensors, ambient light sensors,camera imagers, microphones, just to name few examples. Sensors 1160 maygenerate analog or digital signals that may be stored in memory 1140 andprocessed by DPS(s) 1112 or general purpose processor 1111 in support ofone or more applications such as, for example, applications directed topositioning or navigation operations. For example, DSP(s) 1112 orgeneral purpose processor 1111 host one or more applications toincorporate direct and/or indirect measurements (e.g., received fromsensors 1160) to propagate particles along edges of multiple routinggraphs using techniques discussed above with reference to FIGS. 3 and 4to estimate or predict a motion state of mobile device 1100. In aparticular implementation, positioning assistance data, such asprobability heatmaps, routing graphs, digital maps, routing graphs,identification of cells and locations of anchor nodes corresponding tocells, may be stored in memory 1140 to be accessed by applicationshosted for DPS(s) 1112 or general purpose processor 1111 in support ofpositioning or navigation operations.

In a particular implementation, mobile device 1100 may comprise adedicated modem processor 1166 capable of performing baseband processingof signals received and downconverted at wireless transceiver 1121 orSPS receiver 1155. Similarly, modem processor 1166 may perform basebandprocessing of signals to be upconverted for transmission by wirelesstransceiver 1121. In alternative implementations, instead of having adedicated modem processor, baseband processing may be performed by ageneral purpose processor or DSP (e.g., general purpose/applicationprocessor 1111 or DSP(s) 1112). It should be understood, however, thatthese are merely examples of structures that may perform basebandprocessing, and that claimed subject matter is not limited in thisrespect.

FIG. 6 is a schematic diagram illustrating an example system 1200 thatmay include one or more devices configurable to implement techniques orprocesses described above, for example, in connection with FIG. 1.System 1200 may include, for example, a first device 1202, a seconddevice 1204, and a third device 1206, which may be operatively coupledtogether through a wireless communications network 1208. In an aspect,first device 1202 may comprise a server capable of providing positioningassistance data such as, for example, a base station almanac and/or arouting graph. First device 1202 may also comprise a server capable ofproviding an LCI to a requesting mobile device based, at least in part,on a rough estimate of a location of the requesting mobile device. Firstdevice 1202 may also comprise a server capable of providing indoorpositioning assistance data relevant to a location of an LCI specifiedin a request from a mobile device. Also, in an aspect, wirelesscommunications network 1208 may comprise one or more wireless accesspoints, for example. However, claimed subject matter is not limited inscope in these respects.

First device 1202, second device 1204 and third device 1206, as shown inFIG. 6, may be representative of any device, appliance or machine thatmay be configurable to exchange data over wireless communicationsnetwork 1208. By way of example but not limitation, any of first device1202, second device 1204, or third device 1206 may include: one or morecomputing devices or platforms, such as, e.g., a desktop computer, alaptop computer, a workstation, a server device, or the like; one ormore personal computing or communication devices or appliances, such as,e.g., a personal digital assistant, mobile communication device, or thelike; a computing system or associated service provider capability, suchas, e.g., a database or data storage service provider/system, a networkservice provider/system, an Internet or intranet serviceprovider/system, a portal or search engine service provider/system, awireless communication service provider/system; or any combinationthereof. Any of the first, second, and third devices 1202, 1204, and1206, respectively, may comprise one or more of a base station almanacserver, a base station, or a mobile device in accordance with theexamples described herein.

Similarly, wireless communications network 1208, as shown in FIG. 6, isrepresentative of one or more communication links, processes, orresources configurable to support the exchange of data between at leasttwo of first device 1202, second device 1204, and third device 1206. Byway of example but not limitation, wireless communications network 1208may include wireless or wired communication links, telephone ortelecommunications systems, data buses or channels, optical fibers,terrestrial or space vehicle resources, local area networks, wide areanetworks, intranets, the Internet, routers or switches, and the like, orany combination thereof. As illustrated, for example, by the dashedlined box illustrated as being partially obscured of third device 1206,there may be additional like devices operatively coupled to wirelesscommunications network 1208.

It is recognized that all or part of the various devices and networksshown in system 1200, and the processes and methods as further describedherein, may be implemented using or otherwise including hardware,firmware, software, or any combination thereof.

Thus, by way of example but not limitation, second device 1204 mayinclude at least one processing unit 1220 that is operatively coupled toa memory 1222 through a bus 1228. Details of second device 1204 maydescribe aspects of any of servers 140, 150 or 155. In particularimplementations, second device 1204—for example, the processing unit1220, or the processing unit 1220 in combination with one or moreelements of the memory 1222 or the computer readable medium 1240—mayexecute blocks 382, 384 and/or 386 of FIG. 4A, or perform any action(but not necessarily all actions) in process 400 illustrated in FIG. 4B.Furthermore, second device 1204 may store positioning assistance datasuch as, for example, routing graphs, digital maps, locations oftransmitters, radio heatmaps, etc., in memory 1222 to be provided tomobile devices for performing positioning operations as discussed above.

Processing unit 1220 is representative of one or more circuitsconfigurable to perform at least a portion of a data computing procedureor process. By way of example but not limitation, processing unit 1220may include one or more processors, controllers, microprocessors,microcontrollers, application specific integrated circuits, digitalsignal processors, programmable logic devices, field programmable gatearrays, and the like, or any combination thereof.

Memory 1222 is representative of any data storage mechanism. Memory 1222may include, for example, a primary memory 1224 or a secondary memory1226. Primary memory 1224 may include, for example, a random accessmemory, read only memory, etc. While illustrated in this example asbeing separate from processing unit 1220, it should be understood thatall or part of primary memory 1224 may be provided within or otherwiseco-located/coupled with processing unit 1220.

Secondary memory 1226 may include, for example, the same or similar typeof memory as primary memory or one or more data storage devices orsystems, such as, for example, a disk drive, an optical disc drive, atape drive, a solid state memory drive, etc. In certain implementations,secondary memory 1226 may be operatively receptive of, or otherwiseconfigurable to couple to, a computer-readable medium 1240.Computer-readable medium 1240 may include, for example, anynon-transitory medium that can carry or make accessible data, code orinstructions for one or more of the devices in system 1200.Computer-readable medium 1240 may also be referred to as a storagemedium

Second device 1204 may include, for example, a communication interface1030 that provides for or otherwise supports the operative coupling ofsecond device 1204 to at least wireless communications network 1208. Byway of example but not limitation, communication interface 1230 mayinclude a network interface device or card, a modem, a router, a switch,a transceiver, and the like.

Second device 1204 may include, for example, an input/output device1232. Input/output device 1232 is representative of one or more devicesor features that may be configurable to accept or otherwise introducehuman or machine inputs, or one or more devices or features that may beconfigurable to deliver or otherwise provide for human or machineoutputs. By way of example but not limitation, input/output device 1232may include an operatively configured display, speaker, keyboard, mouse,trackball, touch screen, data port, etc.

The methodologies described herein may be implemented by various meansdepending upon applications according to particular examples. Forexample, such methodologies may be implemented in hardware, firmware,software, or combinations thereof. In a hardware implementation, forexample, a processing unit may be implemented within one or moreapplication specific integrated circuits (“ASICs”), digital signalprocessors (“DSPs”), digital signal processing devices (“DSPDs”),programmable logic devices (“PLDs”), field programmable gate arrays(“FPGAs”), processors, controllers, micro-controllers, microprocessors,electronic devices, other devices units designed to perform thefunctions described herein, or combinations thereof.

Some portions of the detailed description included herein are presentedin terms of algorithms or symbolic representations of operations onbinary digital signals stored within a memory of a specific apparatus orspecial purpose computing device or platform. In the context of thisparticular specification, the term specific apparatus or the likeincludes a general purpose computer once it is programmed to performparticular operations pursuant to instructions from program software.Algorithmic descriptions or symbolic representations are examples oftechniques used by those of ordinary skill in the signal processing orrelated arts to convey the substance of their work to others skilled inthe art. An algorithm is here, and generally, is considered to be aself-consistent sequence of operations or similar signal processingleading to a desired result. In this context, operations or processinginvolve physical manipulation of physical quantities. Typically,although not necessarily, such quantities may take the form ofelectrical or magnetic signals capable of being stored, transferred,combined, compared or otherwise manipulated. It has proven convenient attimes, principally for reasons of common usage, to refer to such signalsas bits, data, values, elements, symbols, characters, terms, numbers,numerals, or the like. It should be understood, however, that all ofthese or similar terms are to be associated with appropriate physicalquantities and are merely convenient labels. Unless specifically statedotherwise, as apparent from the discussion herein, it is appreciatedthat throughout this specification discussions utilizing terms such as“processing,” “computing,” “calculating,” “determining” or the likerefer to actions or processes of a specific apparatus, such as a specialpurpose computer, special purpose computing apparatus or a similarspecial purpose electronic computing device. In the context of thisspecification, therefore, a special purpose computer or a similarspecial purpose electronic computing device is capable of manipulatingor transforming signals, typically represented as physical electronic ormagnetic quantities within memories, registers, or other informationstorage devices, transmission devices, or display devices of the specialpurpose computer or similar special purpose electronic computing device.

Wireless communication techniques described herein may be in connectionwith various wireless communications networks such as a wireless widearea network (“WWAN”), a wireless local area network (“WLAN”), awireless personal area network (WPAN), and so on. The term “network” and“system” may be used interchangeably herein. A WWAN may be a CodeDivision Multiple Access (“CDMA”) network, a Time Division MultipleAccess (“TDMA”) network, a Frequency Division Multiple Access (“FDMA”)network, an Orthogonal Frequency Division Multiple Access (“OFDMA”)network, a Single-Carrier Frequency Division Multiple Access (“SC-FDMA”)network, or any combination of the above networks, and so on. A CDMAnetwork may implement one or more radio access technologies (“RATs”)such as cdma2000, Wideband-CDMA (“W-CDMA”), to name just a few radiotechnologies. Here, cdma2000 may include technologies implementedaccording to IS-95, IS-2000, and IS-856 standards. A TDMA network mayimplement Global System for Mobile Communications (“GSM”), DigitalAdvanced Mobile Phone System (“D-AMPS”), or some other RAT. GSM andW-CDMA are described in documents from a consortium named “3rdGeneration Partnership Project” (“3GPP”). Cdma2000 is described indocuments from a consortium named “3rd Generation Partnership Project 2”(“3GPP2”). 3GPP and 3GPP2 documents are publicly available. 4G Long TermEvolution (“LTE”) communications networks may also be implemented inaccordance with claimed subject matter, in an aspect. A WLAN maycomprise an IEEE 802.11x network, and a WPAN may comprise a Bluetoothnetwork, an IEEE 802.15x, for example. Wireless communicationimplementations described herein may also be used in connection with anycombination of WWAN, WLAN or WPAN.

In another aspect, as previously mentioned, a wireless transmitter oraccess point may comprise a femtocell, utilized to extend cellulartelephone service into a business or home. In such an implementation,one or more mobile devices may communicate with a femtocell via a codedivision multiple access (“CDMA”) cellular communication protocol, forexample, and the femtocell may provide the mobile device access to alarger cellular telecommunication network by way of another broadbandnetwork such as the Internet.

Techniques described herein may be used with an SPS that includes anyone of several GNSS and/or combinations of GNSS. Furthermore, suchtechniques may be used with positioning systems that utilize terrestrialtransmitters acting as “pseudolites”, or a combination of SVs and suchterrestrial transmitters. Terrestrial transmitters may, for example,include ground-based transmitters that broadcast a PN code or otherranging code (e.g., similar to a GPS or CDMA cellular signal). Such atransmitter may be assigned a unique PN code so as to permitidentification by a remote receiver. Terrestrial transmitters may beuseful, for example, to augment an SPS in situations where SPS signalsfrom an orbiting SV might be unavailable, such as in tunnels, mines,buildings, urban canyons or other enclosed areas. Another implementationof pseudolites is known as radio-beacons. The term “SV”, as used herein,is intended to include terrestrial transmitters acting as pseudolites,equivalents of pseudolites, and possibly others. The terms “SPS signals”and/or “SV signals”, as used herein, is intended to include SPS-likesignals from terrestrial transmitters, including terrestrialtransmitters acting as pseudolites or equivalents of pseudolites.

The terms, “and,” and “or” as used herein may include a variety ofmeanings that will depend at least in part upon the context in which itis used. Typically, “or” if used to associate a list, such as A, B or C,is intended to mean A, B, and C, here used in the inclusive sense, aswell as A, B or C, here used in the exclusive sense. Referencethroughout this specification to “one example” or “an example” meansthat a particular feature, structure, or characteristic described inconnection with the example is included in at least one example ofclaimed subject matter. Thus, the appearances of the phrase “in oneexample” or “an example” in various places throughout this specificationare not necessarily all referring to the same example. Furthermore, theparticular features, structures, or characteristics may be combined inone or more examples. Examples described herein may include machines,devices, engines, or apparatuses that operate using digital signals.Such signals may comprise electronic signals, optical signals,electromagnetic signals, or any form of energy that provides informationbetween locations.

While there has been illustrated and described what are presentlyconsidered to be example features, it will be understood by thoseskilled in the art that various other modifications may be made, andequivalents may be substituted, without departing from claimed subjectmatter. Additionally, many modifications may be made to adapt aparticular situation to the teachings of claimed subject matter withoutdeparting from the central concept described herein. Therefore, it isintended that claimed subject matter not be limited to the particularexamples disclosed, but that such claimed subject matter may alsoinclude all aspects falling within the scope of the appended claims, andequivalents thereof.

What is claimed is:
 1. A method comprising: identifying particlesrepresenting possible states of a mobile device, the possible statesincluding at least possible locations of the mobile device in an area;determining a target anchor node of a plurality of anchor nodes in afirst routing graph connecting a plurality of cells of the area; andpropagating one or more of the particles subject to edges of a secondrouting graph connecting nodes within at least one cell of the pluralityof cells to represent possible movement of the mobile device based, atleast in part, on the determined target anchor node.
 2. The method ofclaim 1, wherein the target cell is adjacent a current cell of theplurality of cells, the method further comprising selecting the targetcell based, at least in part, on an estimated speed of movement of themobile device along the first routing graph.
 3. The method of claim 2,further comprising selecting a previous cell as a subsequent target cellin response to a detection that the mobile device has entered anadjacent cell other than the target cell.
 4. The method of claim 2,further comprising selecting a neighboring cell as a new target cell inresponse to a detection that the mobile device has entered the targetcell following expiration of a wander timer.
 5. The method of claim 1,further comprising determining a direction from a current cell of theplurality of cells to the target anchor node.
 6. The method of claim 5,further comprising determining likelihoods for transitioning over aplurality of respective edges of the second routing graph based, atleast in part, on the determined direction, wherein the propagating isbased, at least in part, on the determined likelihoods.
 7. The method ofclaim 1, wherein the particles are indicative of a likelihood of amotion state of the mobile device including a location of the mobiledevice along an edge in the second routing graph.
 8. The method of claim1, wherein the first routing graph comprises a reduced routing graph,and wherein at least some of the plurality of anchor nodes are locatedat opportunities for change of direction.
 9. The method of claim 1,wherein at least one of the anchor nodes is located at an intersectionof hallways.
 10. The method of claim 1, wherein movement along the firstrouting graph models natural pedestrian movement.
 11. A mobile devicecomprising: one or more inertial sensors configured to generatemeasurement signals in response to movement; and a processor configuredto: identify particles representing possible states of the mobiledevice, the possible states including at least possible locations of themobile device in an area; determine a target anchor node of a pluralityof anchor nodes in a first routing graph connecting a plurality of cellsof the area; and propagate one or more of the particles subject to edgesof a second routing graph connecting nodes within at least one cell ofthe plurality of cells to represent possible movement of the mobiledevice based, at least in part, on the determined target anchor node.12. The mobile device of claim 11, wherein the target cell is adjacent acurrent cell of the plurality of cells, and wherein the processor isfurther configured to select the target cell based, at least in part, onan estimated speed of movement of the mobile device along the firstrouting graph.
 13. The mobile device of claim 12, wherein the processoris further configured to select a previous cell as a subsequent targetcell in response to a detection that the mobile device has entered anadjacent cell other than the target cell.
 14. The mobile device of claim12, wherein the processor is further configured to select a neighboringcell as a new target cell in response to a detection that the mobiledevice has entered the target cell following expiration of a wandertimer.
 15. The mobile device of claim 11, wherein the processor isfurther configured to determine a direction from a current cell of theplurality of cells to the target anchor node.
 16. The mobile device ofclaim 15, wherein the processor is further configured to determinelikelihoods for transitioning over a plurality of respective edges ofthe second routing graph based, at least in part, on the determineddirection, wherein the propagating is based, at least in part, on thedetermined likelihoods.
 17. The mobile device of claim 11, wherein theparticles are indicative of a likelihood of a motion state of the mobiledevice including a location of the mobile device along an edge in thesecond routing graph.
 18. The mobile device of claim 11, wherein thefirst routing graph includes a reduced routing graph, and wherein atleast some of the plurality of anchor nodes are located at opportunitiesfor change of direction.
 19. The mobile device of claim 11, wherein theprocessor is further configured to select an adjacent target cell based,at least in part, on an estimated speed of movement of the mobile devicealong the second routing graph.
 20. The mobile device of claim 19,wherein the processor is further configured to select a previous cell asa subsequent target cell in response to a detection that the mobiledevice has entered an adjacent cell other than the adjacent target cell.21. The mobile device of claim 20, wherein the processor is furtherconfigured to select a neighboring cell as a new target cell in responseto a detection that the mobile device has entered the adjacent targetcell following expiration of a wander timer.
 22. The mobile device ofclaim 11, wherein the processor is further configured to select anadjacent target cell based, at least in part, on a determined directionof movement of the mobile device along the second routing graph.
 23. Anon-transitory storage medium comprising machine-readable instructionsstored thereon which are executable by a special purpose computingapparatus to: identify particles representing possible states of amobile device, the possible states including at least possible locationsof the mobile device in an area; determine a target anchor node of aplurality of anchor nodes in a first routing graph connecting aplurality of cells of the area; and propagate one or more of theparticles subject to edges of a second routing graph connecting nodeswithin at least one cell of the plurality of cells to represent possiblemovement of the mobile device based, at least in part, on the determinedtarget anchor node.
 24. An apparatus comprising: means for identifyingparticles representing possible states of a mobile device, the possiblestates including at least possible locations of the mobile device in anarea; means for determining a target anchor node of a plurality ofanchor nodes in a first routing graph connecting a plurality of cells ofthe area; and means for propagating one or more of the particles subjectto edges of a second routing graph connecting nodes within at least onecell of the plurality of cells to represent possible movement of themobile device based, at least in part, on the determined target anchornode.
 25. The apparatus of claim 24, wherein the target cell is adjacenta current cell of the plurality of cells, the apparatus furthercomprising means for selecting the target cell based, at least in part,on an estimated speed of movement of the mobile device along the firstrouting graph.
 26. The apparatus of claim 25, further comprising meansfor selecting a previous cell as a subsequent target cell in response toa detection that the mobile device has entered an adjacent cell otherthan the target cell.
 27. The apparatus of claim 25, further comprisingmeans for selecting a neighboring cell as a new target cell in responseto a detection that the mobile device has entered the target cellfollowing expiration of a wander timer.
 28. The apparatus of claim 24,further comprising means for determining a direction from a current cellof the plurality of cells to the target anchor node.